package com.yunji.aggregate.model.dto.base;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import com.yunji.common.base.PageDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 代理商Param$
 * @Author: HuaAo
 * @Date: 2024-04-08$
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class AgentParam extends PageDTO {

    @ApiModelProperty("代理商ID")
    @Excel(name = "代理商ID", width = 15)
    private Long agentId;

    @ApiModelProperty("代理商名称")
    @Excel(name = "代理商名称", width = 15)
    @Length(message = "代理商名称不能超过{max}个字符", max = 15)
    private String agentName;

    @ApiModelProperty("代理商手机号")
    @Excel(name = "代理商手机号", width = 15)
    @Length(message = "代理商手机号不能超过{max}个字符", max = 11)
    private String agentTel;

    @ApiModelProperty("合作模式 0-合作代理 1-自营")
    @Excel(name = "合作模式 0-合作代理 1-自营")
    private Integer cooperateWay;

    @ApiModelProperty("低的货柜上限")
    @Excel(name = "低的货柜上限", width = 15)
    private Integer minContainerLimit;

    @ApiModelProperty("高的货柜上限")
    @Excel(name = "高的货柜上限", width = 15)
    private Integer maxContainerLimit;

    @ApiModelProperty("低的货柜数")
    private Integer minContainerNums;

    @ApiModelProperty("高的货柜数")
    private Integer maxContainerNums;

    @ApiModelProperty("低的员工数")
    private Integer minStaffNums;

    @ApiModelProperty("高的员工数")
    private Integer maxStaffNums;

    @ApiModelProperty("低的网点数")
    private Integer minSiteNums;

    @ApiModelProperty("高的网点数")
    private Integer maxSiteNums;

    @ApiModelProperty("低的累计收益")
    private BigDecimal minEarnAmount;

    @ApiModelProperty("高的累计收益")
    private BigDecimal maxEarnAmount;

    @ApiModelProperty("低的提现金额")
    private BigDecimal minCashAmount;

    @ApiModelProperty("高的提现金额")
    private BigDecimal maxCashAmount;

    @ApiModelProperty("低的账户余额")
    private BigDecimal minRemainAmount;

    @ApiModelProperty("高的账户余额")
    private BigDecimal maxRemainAmount;

    @ApiModelProperty("低的冻结金额")
    private BigDecimal minFrozenAmount;

    @ApiModelProperty("高的冻结金额")
    private BigDecimal maxFrozenAmount;

    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date closeTime;

    @ApiModelProperty("状态")
    private Integer status;

    @ApiModelProperty("搜索字段")
    private String searchFiled;

    @ApiModelProperty("网点数排序 0-正序 1-倒序")
    @Excel(name = "网点数", width = 15)
    private Integer siteNumsOrder;

    @ApiModelProperty("员工数排序 0-正序 1-倒序")
    @Excel(name = "员工数", width = 15)
    private Integer staffNumsOrder;

    @ApiModelProperty("货柜数排序 0-正序 1-倒序")
    @Excel(name = "货柜数", width = 15)
    private Integer containerNumsOrder;

    @ApiModelProperty("代理商分成排序 0-正序 1-倒序")
    private Integer agentScaleOrder;

}
